package com.financing.wap.service;



import java.math.BigDecimal;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.financing.wap.dto.ActivitesAnswerDTO;
import com.financing.wap.dto.ActivitesMoneyDTO;






public interface IAnswerService{
 
	/**
	 * 根据sessionId或uId查询题目答案
	 * @param queryDto
	 * @return
	 */
	public List<ActivitesAnswerDTO> searchAnswerByParas(ActivitesAnswerDTO queryDto);
	
	
	 
	/**
	 * 更新
	 * @param dto
	 * @return
	 */
	public int updateAnswerBySessionId(ActivitesAnswerDTO dto)  throws SQLException;
	
 
	/**
	 * 新增答案
	 * @param dto
	 * @return
	 */
	public int insertAnswer(ActivitesAnswerDTO dto);
	
	/**
	 * 用户充值并更新问卷答案</br>
	 * 1.更新答案表，将uid与sessionId对应</br>
	 * 2.插入红包表记录</br>
	 * 3.更新账户信息（含账户明细），总额+可提现金额（500为话费，无此操作）</br>
	 * @param userId 用户ID
	 * @param accountId 账户ID
	 * @param s 金额
	 * @throws SQLException 
	 */
	public void updateAccountAndAnswer(String userId,String sessionId,Integer accountId,BigDecimal s) throws SQLException;
	
	
	/**
	 * 一周内500奖励的数目
	 * @param dto
	 * @return
	 */
	public int searchCountOneWeek(Map<String,Date> p);
	
	/**
	 * 发财指数前top排名
	 * @param top 前top数
	 * @return
	 */
	public List<ActivitesMoneyDTO> searchAnswerResultTop(Integer top);
	
	/**
	 * 比自己发财指数高的人数
	 * @param answer 发财钱数
	 * @return
	 */
	public Integer searchAnswerRanking(Integer answer);
	
	
	/**
	 * 参加发财指数的总人数
	 * @param 
	 * @return
	 */
	public Integer searchMoneyCount();
	
	
	/**
	 * 提交答案获取财富指数和金额及排名
	 * @param qajson:提交答案str
	 * @return
	 */
	public ActivitesMoneyDTO getMoneyScoreAndAnswer(String qajson);
	
	/**
	 * 根据openId 查询此用户是否参与过此项目，如果参与过则返回分数，金额，排行信息
	 * @param openId
	 * @return null:没参与
	 */
	public ActivitesMoneyDTO getMoneyScoreAndAnswerByOpenId(String unionid);
}
